package org.springblade.modules.admin.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.admin.dto.ElevatorDeptRoleUserDTO;
import org.springblade.modules.admin.dto.PlanAbarbeitungSearchDTO;
import org.springblade.modules.admin.entity.MaintainAbarbeitungDetail;
import org.springblade.modules.admin.vo.FromPlanVO;
import org.springblade.modules.admin.vo.PlanAbarbeitungByContentVO;
import org.springblade.modules.admin.vo.PlanAbarbeitungDetailVO;
import org.springblade.modules.admin.vo.PlanAbarbeitungPageVO;

import java.util.List;
import java.util.Map;

public interface MaintainAbarbeitungDetailMapper extends BaseMapper<MaintainAbarbeitungDetail> {

	List<PlanAbarbeitungPageVO> selectPlanAbarbeitungPage(@Param("searchDTO") PlanAbarbeitungSearchDTO searchDTO, IPage<PlanAbarbeitungPageVO> page);

	Map<String, Object> selectPageCount();

	PlanAbarbeitungDetailVO selectDetail(Long planId);

	List<PlanAbarbeitungByContentVO> selectFromHistoryList(Long planId);

	@InterceptorIgnore(tenantLine = "on")
	List<PlanAbarbeitungByContentVO> selectAfterHistoryListByTemplateContent(Long planId);

	List<PlanAbarbeitungByContentVO> selectAfterHistoryListByCheckHistory(Long planId);

	List<FromPlanVO> selectZgFromPlan(List<Long> planIds);

    List<PlanAbarbeitungPageVO> selectUnfinishPlanList(@Param("tenantId") String tenantId);

	List<ElevatorDeptRoleUserDTO> selectElevatorDeptRoleUser(@Param("roleIds") List<Long> roleIds,@Param("elevatorIds") List<Long> elevatorIds);
}
